package config

type UserConfig struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
	Name string `mapstructure:"name" json:"name"`
}

type ServerConfig struct {
	Name        string       `mapstructure:"name" json:"name"`
	Port        int          `mapstructure:"port" json:"port"`
	UserSrvInfo UserConfig   `mapstructure:"user-srv" json:"user-srv"`
	JWTInfo     JWTConfig    `mapstructure:"jwt" json:"jwt"`
	RedisInfo   RedisConfig  `mapstructure:"redis" json:"redis"`
	AliSmsInfo  AliSmsConfig `mapstructure:"sms" json:"sms"`
	ConsulInfo  ConsulConfig `mapstructure:"consul" json:"consul"`
}

type JWTConfig struct {
	SigningKey string `mapstructure:"key" json:"key"`
}

type RedisConfig struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
}

type AliSmsConfig struct {
	ApiKey     string `mapstructure:"key" json:"key"`
	ApiSecrect string `mapstructure:"secrect" json:"secrect"`
	Expire     int64  `mapstructure:"expire" json:"expire"`
}

type ConsulConfig struct {
	Host string `mapstructure:"host" json:"host"`
	Port int    `mapstructure:"port" json:"port"`
}
